//封装的函数，接受对象类型，函数在编译时候无法明确T到底是什么对象。
//需要让T来继承对应的约束。明确了T里面一定会存在什么属性约束
function eachKeys<T extends IUser5>(object:T){
    const id = object.id
    const name = object.name
    
}

interface IUser5 {
    id:number,
    name:string
}
const user1:IUser5 = {
    id:1,
    name:"xiaowang"
}
const user2 = {
    id:1,
    address:"武侯区"
}

eachKeys<IUser5>(user1)